;;; GNU Guix --- Functional package management for GNU
;;;
;;; Copyright © 2022 jgart <jgart@dismail.de>
;;; Copyright © 2022 (unmatched parenthesis <paren@disroot.org>
;;;
;;; This file is not part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.

(define-module (guixrus packages chathistorysync)
  #:use-module (guix build-system go)
  #:use-module (guix download)
  #:use-module (guix gexp)
  #:use-module (guix git-download)
  #:use-module ((guix licenses) #:prefix license:)
  #:use-module (guix packages)
  #:use-module (gnu packages golang)
  #:use-module (gnu packages man)
  #:use-module ((guixrus packages common go) #:prefix rus:))

(define-public chathistorysync
  (package
    (name "chathistorysync")
    (version "0.1.0")
    (source
      (origin
        (method git-fetch)
        (uri (git-reference
               (url "https://git.sr.ht/~emersion/chathistorysync")
               (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
          (base32 "169ahzw74h04y9pdmljzpanq1bmlzg400sszv4mv4icy29vsp7rr"))))
    (build-system go-build-system)
    (arguments
     (list #:import-path "git.sr.ht/~emersion/chathistorysync"
           #:install-source? #f ; chathistorysync is an end-user application.
           #:phases
           #~(modify-phases %standard-phases
               (add-after 'build 'doc
                 (lambda _
                   (with-directory-excursion
                     "src/git.sr.ht/~emersion/chathistorysync"
                     (invoke "sh" "-c"
                             "scdoc <chathistorysync.1.scd >chathistorysync.1"))))
               (add-after 'install 'install-doc
                 (lambda* (#:key outputs #:allow-other-keys)
                   (let* ((out (assoc-ref outputs "out")))
                     (with-directory-excursion
                       "src/git.sr.ht/~emersion/chathistorysync"
                       (install-file
                         "chathistorysync.1"
                         (string-append out "/share/man/man1")))))))))
    (inputs
      (list go-golang-org-x-sys
            go-golang-org-x-term
            go-golang-org-x-crypto
            rus:go-gopkg-in-irc-v3))
    (native-inputs (list scdoc))
    (home-page "https://git.sr.ht/~emersion/chathistorysync")
    (synopsis "Synchronization tool for IRC chat history")
    (description
      "This package provides a synchronization tool for IRC chat history.")
    (license license:agpl3)))
